应用示例:
一、8051/251-UART1
void UART1_Isr(void) interrupt 4
{
if(TI){
TI = 0;
if(*s_debug_sendptr){
SBUF = *s_debug_sendptr++;
}
else{
}
}
if(RI){
RI = 0;
if(s_debug_recvptr - s_debug_recvbuff < OS_DEBUGRECVBUFFSIZE - 1){
*s_debug_recvptr++ = SBUF;
}
}
}
二、STM32-USART1
void USART1_IRQHandler(void)
{
if(USART_GetITStatus(USART1, USART_IT_TXE) != RESET){
if(*s_debug_sendptr){
USART_SendData(USART1, *s_debug_sendptr++);
}
else{
USART_ITConfig(USART1, USART_IT_TXE, DISABLE);
}
}
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET){
if(s_debug_recvptr - s_debug_recvbuff < OS_DEBUGRECVBUFFSIZE - 1){
*s_debug_recvptr++ = USART_ReceiveData(USART1);
}
}
}
| #define iDebugRecv s_sign_debug_recv = true |
| #define iDebugSend s_sign_debug_send = true |